<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <div id="app">
      <button @click="obj.name = 'rose' ">修改obj.name</button>
      <button @click="obj.age = 19">修改obj.age</button>
      <button @click="obj.pet.nickname = '阿黄'">修改obj.pet.nickname</button>

      <p>{{ obj }}</p>
    </div>
    <script src="./vue.js"></script>
    <script>
      new Vue({
        el: '#app',
        data () {
          return {
            obj: {
              name: 'jack',
              age: 16,
              height: 175,
              pet: {
                nickname: '旺财',
                age: 1
              }
            }
          }
        },
        watch: {
          // 'obj.name' () {
          //     console.log('obj被改变了')
          // },
          // 'obj.age' () {
          //     console.log('obj的age改变了')
          // },
          obj: [
            'name',
            function () {
              console.log('...')
            }
          ]

          // 需要有一种方法，能让对象里任意属性发生变化都能侦听到
          // 包括对象里的对象属性改变了也能侦听到，可以用深度侦听
          // 总之以后要想侦听对象的所有属性改变，包括对象里的对象就要用深度侦听
          //   obj: {
          //       // 开启深度侦听
          //       deep: true,
          //       // 当obj里任意属性有变化都会调用handler这个回调函数
          //       handler () {
          //           console.log('有变化了')
          //       }
          //   }
        }
      })
    </script>
  </body>
</html>
